#Creator: Sander Nugteren
#Mijn ideeen over communicatie:
#Threadable module, die structs/pickle/json kan senden en ontvangen
#elke nao stuurt hoe ver de bal van hem af is binnen een bepaalde interval
#(niet elke nao hoeft te reporten)
#de keeper beslist wie het dichtst bij de bal is, en dus er heen moet gaan
#de rest doet?
#Als de keeper de bal ziet, dan terug lopen?
#Anders vooruit lopen?

import socket
import sys
import struct
import time
import threading

class Coach(threading.Thread):

	def __init__(self, name, host='100.100.100.100', port=3838, interval=10):
		threading.Thread.__init__(self)
		self.name = name
		self.on = True
		self.closestNao = 0
		self.host = host 
		self.port = port
		self.time = 0
		self.interval = interval

		#create socket and bind the socket to the address
		self.socket = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
		self.socket.bind((host, port))
		#accept incomming data
		self.socket.listen(1)
		self.conn, self.addr = self.socket.accept()

	def run(self):
		#nao's sturen een dict/json met hun nummer en balloc/afstand
		#run blijft even luisteren voor een tijdje tot er iets binnen komt
		#onthoudt alleen de nao op die het dichtst bij de bal is.
		#geeft die nao de order om naar de bal te gaan.
		#als de keeper (op wie dit programma zal runnen) de bal heeft gezien
		#dan moet iedereen naar het eigen doel proberen te komen
		#anders moet iedereen in de aanval
		#stuur de boodschap terug.
